<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

</body>
<script>
  // function add(a,b){  //两个数求和
  //     return a + b;
  // }
  // // var result = add(1,2);
  // // console.log(result);

  // var result = add(1,2,3,4,5);
  // console.log(result);

  // function add(a,b,c,d,e,f,g,h,i){
  //     return a+b+c+d+e+f+g+h+i;
  // }
  // // var result = add(2,8,4,6,5,7,9,3,1);
  // // console.log(result);

  // var result = add(2,8,4,6,5,7,9,3);
  // console.log(result);



  // 需求: 封装一个函数,传入一个或多个参数,计算它们的和?

  // arguments 函数的内置参数(所有的函数都有)
  // 作用: 将函数在每次调用过程中,传入的实际参数,用一个集合存储起来

  // arguments的特性:
  // 1. 有length属性 ,表长度(函数在调用过程中传入的实际参数的个数)
  // 2. 可以通过下标取值和赋值    下标的最大值 = arguments.length-1  (下标从0开始) 
  // 3. 可以被循环遍历(按顺序依次获取集合中的每一个值)  


  function add() {
    console.log(arguments);
    var sum = 0;
    for (var i = 0; i < arguments.length; i++) {
      // i  0 - 9
      // console.log(arguments[i]);
      var item = arguments[i]; // 先取值  存储到变量 item中
      sum += item;
    }
    return sum;
  }
  var result = add(2, 8, 4, 6, 5, 7, 9, 3, 1, 10);
  console.log(result);

  // var result = add(1, 5, 8, 4);
  // console.log(result);









</script>

</html>